Review: Liberty BASIC v4.03

by Cassio Ferreira (cassioferreira_0@yahoo.com)

A subjective evaluation of the language's user-experience from the perspective of a novice to the realm of programming the Windows PC.

Home

LB Browser

4.03 Review

LED Display

Sprite Byte Masks

API Corner

Ini Files

Registration Keys

Eddie Fonts

Dragging a Popup

Random Audio Player

Eddie

Submissions

Index



Back to the BASICs

Just over a year ago out of a fascination with the subject, I set out to find an easy-to-learn general purpose language for my introduction to the world of Windows programming. My search placed Systems' Liberty BASIC at the top of the list of potential candidates. Their website stated the focus of Liberty BASIC was to "uncomplicate Windows programming", providing a powerful environment that allowed for the creation of "custom utilities, business applications, games, or programs that control lab equipment" via an integrated editor, compiler, and debugger. It seemed to meet my original criteria, was backed by some bold claims as to its abilities, and cost next to nothing relative to some popular development environments... all the while purporting to be fun, too? Sold!

LibertEasy BASIC?

The most notable aspect of Liberty BASIC is definitely its ease in both learning and use. Unlike many other languages, the familiar "Hello World!" example really is comprised of only a single line of code! The included detailed helpfile is top notch, allowing me to have completed within two hours of having gotten my start a simple GUI based dice roller program just by referring to it alone!

My first app!

In addition to the helpfile, learning some of the more complex aspects of Windows programming was a dramatically rapid and fluid progression thanks to the included interactive tutorial, several code examples illustrating various levels of functionality, and most importantly, an extremely helpful and generous online community.

A multitude of factors lend to Liberty BASIC's ease of use. Among them, there are only two data types: string and numeric! As in other languages, repeated operations can be wrapped into user-defined functions and subroutines with local and global scoping of variables. In contrast to those languages, there is no need to declare any function, subroutine, or even variable before using them. These facts contribute to making Liberty BASIC, in my opinion, more intuitive and less complicated than those other languages. The visual debugger has been an absolutely vital tool for both learning and use, enabling me to step line-by-line through each program's execution while displaying the values of all variables. I was very pleased to find there is even an open-source GUI form creator and code generator written entirely in Liberty BASIC! Though as a matter of personal preference I code all window components manually, it's nice to have the option of using a visual tool. It seems the only things necessary to keep in mind are: pass the correct one of two data types, close whatever has been opened before the program ends, and adhere to the syntax of the language -- something that can be easily done thanks to real-time syntax coloring within the code editor and to advanced error reporting.

Simple, Not Simplistic

Despite its ease of use, functionality within Liberty BASIC does not seem to be compromised. This includes the native ability to handle multimedia datatypes for sound and images, render graphics and animation with drawn objects or sprites, and support easy interfacing with serial devices and hardware I/O. Providing exponentially increased versatility is its ability to utilize the Windows API and Dynamic Link Library files. All this has allowed me quickly and easily to create a wide range of robust applications for both personal and professional use, including an interface/automator for an old DOS application, various interface-less scheduled tasks within our office's Windows 2003 Server and XP domain, and numerous file parsing chores.

In a more detailed example utilizing all those aforementioned functions, I've written a program for our office that queries the server for any open shared files, logs the results to a text file, which is then parsed for specific files to close prior to calling the DOS application to perform end-of-day processing. Upon the DOS application's termination, it will send a text message to my cellphone with a status and completion time. The whole process is repeated nightly as a scheduled task. This has taken me from the position of having to perform these steps manually in the thirty minutes before leaving work each day to that of having to receive a text message some time around 10:15pm. Liberty BASIC has just paid for itself! This is just one example of several practical uses in which I've actively employed Liberty BASIC at the office.

Survey Says...

Liberty BASIC generates much fervor among its users and has led to a rapidly growing community, providing a solid base of fantastic support and assuring continued near-term development. The online support forums are populated by many programmers of various experience levels, and many of whom are willing to take the time to help the newbie overcome a roadblock or the expert spot the bug she failed to catch. The majority of what I've learned of Liberty BASIC, and thus far programming in general, is owed to that fact.

On the downside, there is some functionality lacking natively from the language such as a means of accessing COM/ActiveX functions, or console mode support for stdin, stdout and stderr. There is also at present a 70MB cap on the size of your application's runtime memory environment. Fortunately, some members of the community have authored tools to extend Liberty BASIC, providing some of that functionality. The size limit is easily managed by splitting large files into sections. It seems some of these issues will be addressed in the next major release of Liberty BASIC. Considering there are workarounds for what is lacking, there is not much I can say to cast it in a negative light.

In Short

One year later, Liberty BASIC has not only met and exceeded my expectations, it has made the experience fun and extremely rewarding. It is, in my opinion, right on target with its author's stated focus.


Home

LB Browser

4.03 Review

LED Display

Sprite Byte Masks

API Corner

Ini Files

Registration Keys

Eddie Fonts

Dragging a Popup

Random Audio Player

Eddie

Submissions

Index